package mysql8学习.高级.第16章_多版本并发控制;

/**
 * 这里介绍了MVCC在 READ COMMITTD、 REPEATABLE READ
 * 这两种隔离级别的事务在执行快照读操作时访问记录的版本链的过程。
 * 这样使不同事务的 读-写、写-读 操作并发执行，从而提升系统性能。
 *
 * 核心点在于ReadView的原理，READ COMMITTD、REPEATABLE READ
 * 这两个隔离级别的一个很大不同就是生成 ReadView的时机不同:
 * ● READ COMMITTD 在每一次进行普通SELECT操作前都会生成一个ReadView
 * ● REPEATABLE READ 只在第一次进行普通SELECT操作前生成一个ReadView,
 *   之后的查询操作都重复使用这个ReadView就好了。
 *
 *  通过MVCC我们可以解决:
 * 1.读写之间阻塞的问题。通过MVCC可以让读写互相不阻塞,
 *   即读不阻塞写，写不阻塞读，这样就可以提升事并发处理能力。
 * 2. 降低了死锁的概率。 这是因为MVCC采用了乐观锁的方式，
 *   读取数据时并不需要加锁,对于写操作,也只锁定必要的行。
 * 3.解决快照读的问题。当我们查询数据库在某个时间点的快照时，
 *   只能看到这个时间点之前事务提交更新的结果，而不能看到这个时间点之后事务提交的更新结果。
 */
public class 总结 {
}


